
import   axios  from "axios";
import { getToken } from "@/utils/storage";
import store from "@/store";
import { logout } from "@/store/actions/login";
import { message } from "antd";
import history from "@/utils/history";
const instance = axios.create({
  baseURL: 'http://geek.itheima.net/v1_0/',
  timeout: 5000
})
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
   // 在发送请求之前做些什么
   const token = getToken()
   if (token) {
     // 添加token
     config.headers.Authorization = `Bearer ${token}`
   }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
}, function (error) {
  if(!error.response){
    message.error('网络错误，请重试！！',1,)
    return Promise.reject(error);
  }
  if(error.response.status === 401){
    message.error('您的用户信息已过期，请重新登陆',1,() => {
      history.replace({
        pathname:'/login',
        state:{
          from:history.location.pathname
        }
      })
      // localtion.href的缺点就是会重定向
      // window.location.href='/login'
    })
    store.dispatch(logout())
  }
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default instance